package com.ruoyi.system.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.Awards.ApplicationAwardType;
import com.ruoyi.system.domain.Awards.EvaluationCriteria;
import com.ruoyi.system.mapper.ApplicationAwardTypeMapper;
import com.ruoyi.system.service.IApplicationAwardTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author 三月
 */
@Service
public class ApplicationAwardTypeServiceImpl implements IApplicationAwardTypeService {
    @Autowired
    private ApplicationAwardTypeMapper applicationAwardTypeMapper;

    /**
     * 查询【请填写功能名称】
     *
     * @param applicationAwardTypeId 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    @Override
    public ApplicationAwardType selectApplicationAwardTypeByApplicationAwardTypeId(Long applicationAwardTypeId)
    {
         ApplicationAwardType awardType= applicationAwardTypeMapper.selectApplicationAwardTypeByApplicationAwardTypeId(applicationAwardTypeId);
         if(awardType!=null){
             EvaluationCriteria evaluationCriteria=new EvaluationCriteria();
             evaluationCriteria.setApplicationAwardTypeId(applicationAwardTypeId);
             awardType.setEvaluationCriteriaList(applicationAwardTypeMapper.selectEvaluationCriteriaList(evaluationCriteria));
         }

        return awardType;
    }

    /**
     * 查询【请填写功能名称】列表
     *
     * @param applicationAwardType 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<ApplicationAwardType> selectApplicationAwardTypeList(ApplicationAwardType applicationAwardType)
    {
        return applicationAwardTypeMapper.selectApplicationAwardTypeList(applicationAwardType);
    }

    /**
     * 新增【请填写功能名称】
     *
     * @param applicationAwardType 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int insertApplicationAwardType(ApplicationAwardType applicationAwardType)
    {
        applicationAwardType.setCreateTime(DateUtils.getNowDate());
         applicationAwardTypeMapper.insertApplicationAwardType(applicationAwardType);
         //检查评定标准是否为空
         if(applicationAwardType.getEvaluationCriteriaList()!=null&&applicationAwardType.getEvaluationCriteriaList().size()!=0){
             for (EvaluationCriteria evaluationCriteria :applicationAwardType.getEvaluationCriteriaList()
                  ) {
                 evaluationCriteria.setApplicationAwardTypeId(applicationAwardType.getApplicationAwardTypeId());
                 applicationAwardTypeMapper.insertEvaluationCriteria(evaluationCriteria);
             }
         }
         return 1;
    }

    /**
     * 修改【请填写功能名称】
     *
     * @param applicationAwardType 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int updateApplicationAwardType(ApplicationAwardType applicationAwardType) {
        applicationAwardType.setUpdateTime(DateUtils.getNowDate());
        applicationAwardTypeMapper.updateApplicationAwardType(applicationAwardType);
        //检查评定标准是否为空
        if (applicationAwardType.getEvaluationCriteriaList() != null && applicationAwardType.getEvaluationCriteriaList().size() != 0) {
            for (EvaluationCriteria evaluationCriteria : applicationAwardType.getEvaluationCriteriaList()
            ) {
                applicationAwardTypeMapper.updateEvaluationCriteria(evaluationCriteria);
            }

        }
        return 1;
    }

    /**
     * 批量删除【请填写功能名称】
     *
     * @param applicationAwardTypeIds 需要删除的【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteApplicationAwardTypeByApplicationAwardTypeIds(Long[] applicationAwardTypeIds)
    {
        return applicationAwardTypeMapper.deleteApplicationAwardTypeByApplicationAwardTypeIds(applicationAwardTypeIds);
    }

    /**
     * 删除【请填写功能名称】信息
     *
     * @param applicationAwardTypeId 【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteApplicationAwardTypeByApplicationAwardTypeId(Long applicationAwardTypeId)
    {
        return applicationAwardTypeMapper.deleteApplicationAwardTypeByApplicationAwardTypeId(applicationAwardTypeId);
    }

    /**
     ****************************** 以下是评定标准表******************************************8
     * */

    /**
     * 查询【请填写功能名称】
     *
     * @param criteriaId 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    @Override
    public EvaluationCriteria selectEvaluationCriteriaByCriteriaId(Long criteriaId)
    {
        return applicationAwardTypeMapper.selectEvaluationCriteriaByCriteriaId(criteriaId);
    }

    /**
     * 查询【请填写功能名称】列表
     *
     * @param evaluationCriteria 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<EvaluationCriteria> selectEvaluationCriteriaList(EvaluationCriteria evaluationCriteria)
    {
        return applicationAwardTypeMapper.selectEvaluationCriteriaList(evaluationCriteria);
    }

    /**
     * 新增【请填写功能名称】
     *
     * @param evaluationCriteria 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int insertEvaluationCriteria(EvaluationCriteria evaluationCriteria)
    {
        return applicationAwardTypeMapper.insertEvaluationCriteria(evaluationCriteria);
    }

    /**
     * 修改【请填写功能名称】
     *
     * @param evaluationCriteria 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int updateEvaluationCriteria(EvaluationCriteria evaluationCriteria)
    {
        return applicationAwardTypeMapper.updateEvaluationCriteria(evaluationCriteria);
    }

    /**
     * 批量删除【请填写功能名称】
     *
     * @param criteriaIds 需要删除的【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteEvaluationCriteriaByCriteriaIds(Long[] criteriaIds)
    {
        return applicationAwardTypeMapper.deleteEvaluationCriteriaByCriteriaIds(criteriaIds);
    }

    /**
     * 删除【请填写功能名称】信息
     *
     * @param criteriaId 【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteEvaluationCriteriaByCriteriaId(Long criteriaId)
    {
        return applicationAwardTypeMapper.deleteEvaluationCriteriaByCriteriaId(criteriaId);
    }
}
